package com.yf.springbootgenerator.entity;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class TbProjectExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public TbProjectExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andIdIsNull() {
            addCriterion("Id is null");
            return (Criteria) this;
        }

        public Criteria andIdIsNotNull() {
            addCriterion("Id is not null");
            return (Criteria) this;
        }

        public Criteria andIdEqualTo(Long value) {
            addCriterion("Id =", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotEqualTo(Long value) {
            addCriterion("Id <>", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThan(Long value) {
            addCriterion("Id >", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThanOrEqualTo(Long value) {
            addCriterion("Id >=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThan(Long value) {
            addCriterion("Id <", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThanOrEqualTo(Long value) {
            addCriterion("Id <=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdIn(List<Long> values) {
            addCriterion("Id in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotIn(List<Long> values) {
            addCriterion("Id not in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdBetween(Long value1, Long value2) {
            addCriterion("Id between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotBetween(Long value1, Long value2) {
            addCriterion("Id not between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andUserIdIsNull() {
            addCriterion("user_id is null");
            return (Criteria) this;
        }

        public Criteria andUserIdIsNotNull() {
            addCriterion("user_id is not null");
            return (Criteria) this;
        }

        public Criteria andUserIdEqualTo(Integer value) {
            addCriterion("user_id =", value, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdNotEqualTo(Integer value) {
            addCriterion("user_id <>", value, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdGreaterThan(Integer value) {
            addCriterion("user_id >", value, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("user_id >=", value, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdLessThan(Integer value) {
            addCriterion("user_id <", value, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdLessThanOrEqualTo(Integer value) {
            addCriterion("user_id <=", value, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdIn(List<Integer> values) {
            addCriterion("user_id in", values, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdNotIn(List<Integer> values) {
            addCriterion("user_id not in", values, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdBetween(Integer value1, Integer value2) {
            addCriterion("user_id between", value1, value2, "userId");
            return (Criteria) this;
        }

        public Criteria andUserIdNotBetween(Integer value1, Integer value2) {
            addCriterion("user_id not between", value1, value2, "userId");
            return (Criteria) this;
        }

        public Criteria andProjectNumberIsNull() {
            addCriterion("project_number is null");
            return (Criteria) this;
        }

        public Criteria andProjectNumberIsNotNull() {
            addCriterion("project_number is not null");
            return (Criteria) this;
        }

        public Criteria andProjectNumberEqualTo(String value) {
            addCriterion("project_number =", value, "projectNumber");
            return (Criteria) this;
        }

        public Criteria andProjectNumberNotEqualTo(String value) {
            addCriterion("project_number <>", value, "projectNumber");
            return (Criteria) this;
        }

        public Criteria andProjectNumberGreaterThan(String value) {
            addCriterion("project_number >", value, "projectNumber");
            return (Criteria) this;
        }

        public Criteria andProjectNumberGreaterThanOrEqualTo(String value) {
            addCriterion("project_number >=", value, "projectNumber");
            return (Criteria) this;
        }

        public Criteria andProjectNumberLessThan(String value) {
            addCriterion("project_number <", value, "projectNumber");
            return (Criteria) this;
        }

        public Criteria andProjectNumberLessThanOrEqualTo(String value) {
            addCriterion("project_number <=", value, "projectNumber");
            return (Criteria) this;
        }

        public Criteria andProjectNumberLike(String value) {
            addCriterion("project_number like", value, "projectNumber");
            return (Criteria) this;
        }

        public Criteria andProjectNumberNotLike(String value) {
            addCriterion("project_number not like", value, "projectNumber");
            return (Criteria) this;
        }

        public Criteria andProjectNumberIn(List<String> values) {
            addCriterion("project_number in", values, "projectNumber");
            return (Criteria) this;
        }

        public Criteria andProjectNumberNotIn(List<String> values) {
            addCriterion("project_number not in", values, "projectNumber");
            return (Criteria) this;
        }

        public Criteria andProjectNumberBetween(String value1, String value2) {
            addCriterion("project_number between", value1, value2, "projectNumber");
            return (Criteria) this;
        }

        public Criteria andProjectNumberNotBetween(String value1, String value2) {
            addCriterion("project_number not between", value1, value2, "projectNumber");
            return (Criteria) this;
        }

        public Criteria andTaskTotalIsNull() {
            addCriterion("task_total is null");
            return (Criteria) this;
        }

        public Criteria andTaskTotalIsNotNull() {
            addCriterion("task_total is not null");
            return (Criteria) this;
        }

        public Criteria andTaskTotalEqualTo(Integer value) {
            addCriterion("task_total =", value, "taskTotal");
            return (Criteria) this;
        }

        public Criteria andTaskTotalNotEqualTo(Integer value) {
            addCriterion("task_total <>", value, "taskTotal");
            return (Criteria) this;
        }

        public Criteria andTaskTotalGreaterThan(Integer value) {
            addCriterion("task_total >", value, "taskTotal");
            return (Criteria) this;
        }

        public Criteria andTaskTotalGreaterThanOrEqualTo(Integer value) {
            addCriterion("task_total >=", value, "taskTotal");
            return (Criteria) this;
        }

        public Criteria andTaskTotalLessThan(Integer value) {
            addCriterion("task_total <", value, "taskTotal");
            return (Criteria) this;
        }

        public Criteria andTaskTotalLessThanOrEqualTo(Integer value) {
            addCriterion("task_total <=", value, "taskTotal");
            return (Criteria) this;
        }

        public Criteria andTaskTotalIn(List<Integer> values) {
            addCriterion("task_total in", values, "taskTotal");
            return (Criteria) this;
        }

        public Criteria andTaskTotalNotIn(List<Integer> values) {
            addCriterion("task_total not in", values, "taskTotal");
            return (Criteria) this;
        }

        public Criteria andTaskTotalBetween(Integer value1, Integer value2) {
            addCriterion("task_total between", value1, value2, "taskTotal");
            return (Criteria) this;
        }

        public Criteria andTaskTotalNotBetween(Integer value1, Integer value2) {
            addCriterion("task_total not between", value1, value2, "taskTotal");
            return (Criteria) this;
        }

        public Criteria andIsNeedAiIsNull() {
            addCriterion("is_need_ai is null");
            return (Criteria) this;
        }

        public Criteria andIsNeedAiIsNotNull() {
            addCriterion("is_need_ai is not null");
            return (Criteria) this;
        }

        public Criteria andIsNeedAiEqualTo(Integer value) {
            addCriterion("is_need_ai =", value, "isNeedAi");
            return (Criteria) this;
        }

        public Criteria andIsNeedAiNotEqualTo(Integer value) {
            addCriterion("is_need_ai <>", value, "isNeedAi");
            return (Criteria) this;
        }

        public Criteria andIsNeedAiGreaterThan(Integer value) {
            addCriterion("is_need_ai >", value, "isNeedAi");
            return (Criteria) this;
        }

        public Criteria andIsNeedAiGreaterThanOrEqualTo(Integer value) {
            addCriterion("is_need_ai >=", value, "isNeedAi");
            return (Criteria) this;
        }

        public Criteria andIsNeedAiLessThan(Integer value) {
            addCriterion("is_need_ai <", value, "isNeedAi");
            return (Criteria) this;
        }

        public Criteria andIsNeedAiLessThanOrEqualTo(Integer value) {
            addCriterion("is_need_ai <=", value, "isNeedAi");
            return (Criteria) this;
        }

        public Criteria andIsNeedAiIn(List<Integer> values) {
            addCriterion("is_need_ai in", values, "isNeedAi");
            return (Criteria) this;
        }

        public Criteria andIsNeedAiNotIn(List<Integer> values) {
            addCriterion("is_need_ai not in", values, "isNeedAi");
            return (Criteria) this;
        }

        public Criteria andIsNeedAiBetween(Integer value1, Integer value2) {
            addCriterion("is_need_ai between", value1, value2, "isNeedAi");
            return (Criteria) this;
        }

        public Criteria andIsNeedAiNotBetween(Integer value1, Integer value2) {
            addCriterion("is_need_ai not between", value1, value2, "isNeedAi");
            return (Criteria) this;
        }

        public Criteria andIsFirstReviewIsNull() {
            addCriterion("is_first_review is null");
            return (Criteria) this;
        }

        public Criteria andIsFirstReviewIsNotNull() {
            addCriterion("is_first_review is not null");
            return (Criteria) this;
        }

        public Criteria andIsFirstReviewEqualTo(Integer value) {
            addCriterion("is_first_review =", value, "isFirstReview");
            return (Criteria) this;
        }

        public Criteria andIsFirstReviewNotEqualTo(Integer value) {
            addCriterion("is_first_review <>", value, "isFirstReview");
            return (Criteria) this;
        }

        public Criteria andIsFirstReviewGreaterThan(Integer value) {
            addCriterion("is_first_review >", value, "isFirstReview");
            return (Criteria) this;
        }

        public Criteria andIsFirstReviewGreaterThanOrEqualTo(Integer value) {
            addCriterion("is_first_review >=", value, "isFirstReview");
            return (Criteria) this;
        }

        public Criteria andIsFirstReviewLessThan(Integer value) {
            addCriterion("is_first_review <", value, "isFirstReview");
            return (Criteria) this;
        }

        public Criteria andIsFirstReviewLessThanOrEqualTo(Integer value) {
            addCriterion("is_first_review <=", value, "isFirstReview");
            return (Criteria) this;
        }

        public Criteria andIsFirstReviewIn(List<Integer> values) {
            addCriterion("is_first_review in", values, "isFirstReview");
            return (Criteria) this;
        }

        public Criteria andIsFirstReviewNotIn(List<Integer> values) {
            addCriterion("is_first_review not in", values, "isFirstReview");
            return (Criteria) this;
        }

        public Criteria andIsFirstReviewBetween(Integer value1, Integer value2) {
            addCriterion("is_first_review between", value1, value2, "isFirstReview");
            return (Criteria) this;
        }

        public Criteria andIsFirstReviewNotBetween(Integer value1, Integer value2) {
            addCriterion("is_first_review not between", value1, value2, "isFirstReview");
            return (Criteria) this;
        }

        public Criteria andIsSecondReviewIsNull() {
            addCriterion("is_second_review is null");
            return (Criteria) this;
        }

        public Criteria andIsSecondReviewIsNotNull() {
            addCriterion("is_second_review is not null");
            return (Criteria) this;
        }

        public Criteria andIsSecondReviewEqualTo(Integer value) {
            addCriterion("is_second_review =", value, "isSecondReview");
            return (Criteria) this;
        }

        public Criteria andIsSecondReviewNotEqualTo(Integer value) {
            addCriterion("is_second_review <>", value, "isSecondReview");
            return (Criteria) this;
        }

        public Criteria andIsSecondReviewGreaterThan(Integer value) {
            addCriterion("is_second_review >", value, "isSecondReview");
            return (Criteria) this;
        }

        public Criteria andIsSecondReviewGreaterThanOrEqualTo(Integer value) {
            addCriterion("is_second_review >=", value, "isSecondReview");
            return (Criteria) this;
        }

        public Criteria andIsSecondReviewLessThan(Integer value) {
            addCriterion("is_second_review <", value, "isSecondReview");
            return (Criteria) this;
        }

        public Criteria andIsSecondReviewLessThanOrEqualTo(Integer value) {
            addCriterion("is_second_review <=", value, "isSecondReview");
            return (Criteria) this;
        }

        public Criteria andIsSecondReviewIn(List<Integer> values) {
            addCriterion("is_second_review in", values, "isSecondReview");
            return (Criteria) this;
        }

        public Criteria andIsSecondReviewNotIn(List<Integer> values) {
            addCriterion("is_second_review not in", values, "isSecondReview");
            return (Criteria) this;
        }

        public Criteria andIsSecondReviewBetween(Integer value1, Integer value2) {
            addCriterion("is_second_review between", value1, value2, "isSecondReview");
            return (Criteria) this;
        }

        public Criteria andIsSecondReviewNotBetween(Integer value1, Integer value2) {
            addCriterion("is_second_review not between", value1, value2, "isSecondReview");
            return (Criteria) this;
        }

        public Criteria andIsConsulationIsNull() {
            addCriterion("is_consulation is null");
            return (Criteria) this;
        }

        public Criteria andIsConsulationIsNotNull() {
            addCriterion("is_consulation is not null");
            return (Criteria) this;
        }

        public Criteria andIsConsulationEqualTo(Integer value) {
            addCriterion("is_consulation =", value, "isConsulation");
            return (Criteria) this;
        }

        public Criteria andIsConsulationNotEqualTo(Integer value) {
            addCriterion("is_consulation <>", value, "isConsulation");
            return (Criteria) this;
        }

        public Criteria andIsConsulationGreaterThan(Integer value) {
            addCriterion("is_consulation >", value, "isConsulation");
            return (Criteria) this;
        }

        public Criteria andIsConsulationGreaterThanOrEqualTo(Integer value) {
            addCriterion("is_consulation >=", value, "isConsulation");
            return (Criteria) this;
        }

        public Criteria andIsConsulationLessThan(Integer value) {
            addCriterion("is_consulation <", value, "isConsulation");
            return (Criteria) this;
        }

        public Criteria andIsConsulationLessThanOrEqualTo(Integer value) {
            addCriterion("is_consulation <=", value, "isConsulation");
            return (Criteria) this;
        }

        public Criteria andIsConsulationIn(List<Integer> values) {
            addCriterion("is_consulation in", values, "isConsulation");
            return (Criteria) this;
        }

        public Criteria andIsConsulationNotIn(List<Integer> values) {
            addCriterion("is_consulation not in", values, "isConsulation");
            return (Criteria) this;
        }

        public Criteria andIsConsulationBetween(Integer value1, Integer value2) {
            addCriterion("is_consulation between", value1, value2, "isConsulation");
            return (Criteria) this;
        }

        public Criteria andIsConsulationNotBetween(Integer value1, Integer value2) {
            addCriterion("is_consulation not between", value1, value2, "isConsulation");
            return (Criteria) this;
        }

        public Criteria andProjectPeriodIsNull() {
            addCriterion("project_period is null");
            return (Criteria) this;
        }

        public Criteria andProjectPeriodIsNotNull() {
            addCriterion("project_period is not null");
            return (Criteria) this;
        }

        public Criteria andProjectPeriodEqualTo(Integer value) {
            addCriterion("project_period =", value, "projectPeriod");
            return (Criteria) this;
        }

        public Criteria andProjectPeriodNotEqualTo(Integer value) {
            addCriterion("project_period <>", value, "projectPeriod");
            return (Criteria) this;
        }

        public Criteria andProjectPeriodGreaterThan(Integer value) {
            addCriterion("project_period >", value, "projectPeriod");
            return (Criteria) this;
        }

        public Criteria andProjectPeriodGreaterThanOrEqualTo(Integer value) {
            addCriterion("project_period >=", value, "projectPeriod");
            return (Criteria) this;
        }

        public Criteria andProjectPeriodLessThan(Integer value) {
            addCriterion("project_period <", value, "projectPeriod");
            return (Criteria) this;
        }

        public Criteria andProjectPeriodLessThanOrEqualTo(Integer value) {
            addCriterion("project_period <=", value, "projectPeriod");
            return (Criteria) this;
        }

        public Criteria andProjectPeriodIn(List<Integer> values) {
            addCriterion("project_period in", values, "projectPeriod");
            return (Criteria) this;
        }

        public Criteria andProjectPeriodNotIn(List<Integer> values) {
            addCriterion("project_period not in", values, "projectPeriod");
            return (Criteria) this;
        }

        public Criteria andProjectPeriodBetween(Integer value1, Integer value2) {
            addCriterion("project_period between", value1, value2, "projectPeriod");
            return (Criteria) this;
        }

        public Criteria andProjectPeriodNotBetween(Integer value1, Integer value2) {
            addCriterion("project_period not between", value1, value2, "projectPeriod");
            return (Criteria) this;
        }

        public Criteria andProjectPeriodUnitIsNull() {
            addCriterion("project_period_unit is null");
            return (Criteria) this;
        }

        public Criteria andProjectPeriodUnitIsNotNull() {
            addCriterion("project_period_unit is not null");
            return (Criteria) this;
        }

        public Criteria andProjectPeriodUnitEqualTo(Integer value) {
            addCriterion("project_period_unit =", value, "projectPeriodUnit");
            return (Criteria) this;
        }

        public Criteria andProjectPeriodUnitNotEqualTo(Integer value) {
            addCriterion("project_period_unit <>", value, "projectPeriodUnit");
            return (Criteria) this;
        }

        public Criteria andProjectPeriodUnitGreaterThan(Integer value) {
            addCriterion("project_period_unit >", value, "projectPeriodUnit");
            return (Criteria) this;
        }

        public Criteria andProjectPeriodUnitGreaterThanOrEqualTo(Integer value) {
            addCriterion("project_period_unit >=", value, "projectPeriodUnit");
            return (Criteria) this;
        }

        public Criteria andProjectPeriodUnitLessThan(Integer value) {
            addCriterion("project_period_unit <", value, "projectPeriodUnit");
            return (Criteria) this;
        }

        public Criteria andProjectPeriodUnitLessThanOrEqualTo(Integer value) {
            addCriterion("project_period_unit <=", value, "projectPeriodUnit");
            return (Criteria) this;
        }

        public Criteria andProjectPeriodUnitIn(List<Integer> values) {
            addCriterion("project_period_unit in", values, "projectPeriodUnit");
            return (Criteria) this;
        }

        public Criteria andProjectPeriodUnitNotIn(List<Integer> values) {
            addCriterion("project_period_unit not in", values, "projectPeriodUnit");
            return (Criteria) this;
        }

        public Criteria andProjectPeriodUnitBetween(Integer value1, Integer value2) {
            addCriterion("project_period_unit between", value1, value2, "projectPeriodUnit");
            return (Criteria) this;
        }

        public Criteria andProjectPeriodUnitNotBetween(Integer value1, Integer value2) {
            addCriterion("project_period_unit not between", value1, value2, "projectPeriodUnit");
            return (Criteria) this;
        }

        public Criteria andStatusIsNull() {
            addCriterion("status is null");
            return (Criteria) this;
        }

        public Criteria andStatusIsNotNull() {
            addCriterion("status is not null");
            return (Criteria) this;
        }

        public Criteria andStatusEqualTo(Integer value) {
            addCriterion("status =", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusNotEqualTo(Integer value) {
            addCriterion("status <>", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusGreaterThan(Integer value) {
            addCriterion("status >", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusGreaterThanOrEqualTo(Integer value) {
            addCriterion("status >=", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusLessThan(Integer value) {
            addCriterion("status <", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusLessThanOrEqualTo(Integer value) {
            addCriterion("status <=", value, "status");
            return (Criteria) this;
        }

        public Criteria andStatusIn(List<Integer> values) {
            addCriterion("status in", values, "status");
            return (Criteria) this;
        }

        public Criteria andStatusNotIn(List<Integer> values) {
            addCriterion("status not in", values, "status");
            return (Criteria) this;
        }

        public Criteria andStatusBetween(Integer value1, Integer value2) {
            addCriterion("status between", value1, value2, "status");
            return (Criteria) this;
        }

        public Criteria andStatusNotBetween(Integer value1, Integer value2) {
            addCriterion("status not between", value1, value2, "status");
            return (Criteria) this;
        }

        public Criteria andIsStopIsNull() {
            addCriterion("is_stop is null");
            return (Criteria) this;
        }

        public Criteria andIsStopIsNotNull() {
            addCriterion("is_stop is not null");
            return (Criteria) this;
        }

        public Criteria andIsStopEqualTo(Integer value) {
            addCriterion("is_stop =", value, "isStop");
            return (Criteria) this;
        }

        public Criteria andIsStopNotEqualTo(Integer value) {
            addCriterion("is_stop <>", value, "isStop");
            return (Criteria) this;
        }

        public Criteria andIsStopGreaterThan(Integer value) {
            addCriterion("is_stop >", value, "isStop");
            return (Criteria) this;
        }

        public Criteria andIsStopGreaterThanOrEqualTo(Integer value) {
            addCriterion("is_stop >=", value, "isStop");
            return (Criteria) this;
        }

        public Criteria andIsStopLessThan(Integer value) {
            addCriterion("is_stop <", value, "isStop");
            return (Criteria) this;
        }

        public Criteria andIsStopLessThanOrEqualTo(Integer value) {
            addCriterion("is_stop <=", value, "isStop");
            return (Criteria) this;
        }

        public Criteria andIsStopIn(List<Integer> values) {
            addCriterion("is_stop in", values, "isStop");
            return (Criteria) this;
        }

        public Criteria andIsStopNotIn(List<Integer> values) {
            addCriterion("is_stop not in", values, "isStop");
            return (Criteria) this;
        }

        public Criteria andIsStopBetween(Integer value1, Integer value2) {
            addCriterion("is_stop between", value1, value2, "isStop");
            return (Criteria) this;
        }

        public Criteria andIsStopNotBetween(Integer value1, Integer value2) {
            addCriterion("is_stop not between", value1, value2, "isStop");
            return (Criteria) this;
        }

        public Criteria andIsDeleteIsNull() {
            addCriterion("is_delete is null");
            return (Criteria) this;
        }

        public Criteria andIsDeleteIsNotNull() {
            addCriterion("is_delete is not null");
            return (Criteria) this;
        }

        public Criteria andIsDeleteEqualTo(Integer value) {
            addCriterion("is_delete =", value, "isDelete");
            return (Criteria) this;
        }

        public Criteria andIsDeleteNotEqualTo(Integer value) {
            addCriterion("is_delete <>", value, "isDelete");
            return (Criteria) this;
        }

        public Criteria andIsDeleteGreaterThan(Integer value) {
            addCriterion("is_delete >", value, "isDelete");
            return (Criteria) this;
        }

        public Criteria andIsDeleteGreaterThanOrEqualTo(Integer value) {
            addCriterion("is_delete >=", value, "isDelete");
            return (Criteria) this;
        }

        public Criteria andIsDeleteLessThan(Integer value) {
            addCriterion("is_delete <", value, "isDelete");
            return (Criteria) this;
        }

        public Criteria andIsDeleteLessThanOrEqualTo(Integer value) {
            addCriterion("is_delete <=", value, "isDelete");
            return (Criteria) this;
        }

        public Criteria andIsDeleteIn(List<Integer> values) {
            addCriterion("is_delete in", values, "isDelete");
            return (Criteria) this;
        }

        public Criteria andIsDeleteNotIn(List<Integer> values) {
            addCriterion("is_delete not in", values, "isDelete");
            return (Criteria) this;
        }

        public Criteria andIsDeleteBetween(Integer value1, Integer value2) {
            addCriterion("is_delete between", value1, value2, "isDelete");
            return (Criteria) this;
        }

        public Criteria andIsDeleteNotBetween(Integer value1, Integer value2) {
            addCriterion("is_delete not between", value1, value2, "isDelete");
            return (Criteria) this;
        }

        public Criteria andCreateDateIsNull() {
            addCriterion("create_date is null");
            return (Criteria) this;
        }

        public Criteria andCreateDateIsNotNull() {
            addCriterion("create_date is not null");
            return (Criteria) this;
        }

        public Criteria andCreateDateEqualTo(Date value) {
            addCriterion("create_date =", value, "createDate");
            return (Criteria) this;
        }

        public Criteria andCreateDateNotEqualTo(Date value) {
            addCriterion("create_date <>", value, "createDate");
            return (Criteria) this;
        }

        public Criteria andCreateDateGreaterThan(Date value) {
            addCriterion("create_date >", value, "createDate");
            return (Criteria) this;
        }

        public Criteria andCreateDateGreaterThanOrEqualTo(Date value) {
            addCriterion("create_date >=", value, "createDate");
            return (Criteria) this;
        }

        public Criteria andCreateDateLessThan(Date value) {
            addCriterion("create_date <", value, "createDate");
            return (Criteria) this;
        }

        public Criteria andCreateDateLessThanOrEqualTo(Date value) {
            addCriterion("create_date <=", value, "createDate");
            return (Criteria) this;
        }

        public Criteria andCreateDateIn(List<Date> values) {
            addCriterion("create_date in", values, "createDate");
            return (Criteria) this;
        }

        public Criteria andCreateDateNotIn(List<Date> values) {
            addCriterion("create_date not in", values, "createDate");
            return (Criteria) this;
        }

        public Criteria andCreateDateBetween(Date value1, Date value2) {
            addCriterion("create_date between", value1, value2, "createDate");
            return (Criteria) this;
        }

        public Criteria andCreateDateNotBetween(Date value1, Date value2) {
            addCriterion("create_date not between", value1, value2, "createDate");
            return (Criteria) this;
        }

        public Criteria andUpdateDateIsNull() {
            addCriterion("update_date is null");
            return (Criteria) this;
        }

        public Criteria andUpdateDateIsNotNull() {
            addCriterion("update_date is not null");
            return (Criteria) this;
        }

        public Criteria andUpdateDateEqualTo(Date value) {
            addCriterion("update_date =", value, "updateDate");
            return (Criteria) this;
        }

        public Criteria andUpdateDateNotEqualTo(Date value) {
            addCriterion("update_date <>", value, "updateDate");
            return (Criteria) this;
        }

        public Criteria andUpdateDateGreaterThan(Date value) {
            addCriterion("update_date >", value, "updateDate");
            return (Criteria) this;
        }

        public Criteria andUpdateDateGreaterThanOrEqualTo(Date value) {
            addCriterion("update_date >=", value, "updateDate");
            return (Criteria) this;
        }

        public Criteria andUpdateDateLessThan(Date value) {
            addCriterion("update_date <", value, "updateDate");
            return (Criteria) this;
        }

        public Criteria andUpdateDateLessThanOrEqualTo(Date value) {
            addCriterion("update_date <=", value, "updateDate");
            return (Criteria) this;
        }

        public Criteria andUpdateDateIn(List<Date> values) {
            addCriterion("update_date in", values, "updateDate");
            return (Criteria) this;
        }

        public Criteria andUpdateDateNotIn(List<Date> values) {
            addCriterion("update_date not in", values, "updateDate");
            return (Criteria) this;
        }

        public Criteria andUpdateDateBetween(Date value1, Date value2) {
            addCriterion("update_date between", value1, value2, "updateDate");
            return (Criteria) this;
        }

        public Criteria andUpdateDateNotBetween(Date value1, Date value2) {
            addCriterion("update_date not between", value1, value2, "updateDate");
            return (Criteria) this;
        }

        public Criteria andRemarkIsNull() {
            addCriterion("remark is null");
            return (Criteria) this;
        }

        public Criteria andRemarkIsNotNull() {
            addCriterion("remark is not null");
            return (Criteria) this;
        }

        public Criteria andRemarkEqualTo(String value) {
            addCriterion("remark =", value, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkNotEqualTo(String value) {
            addCriterion("remark <>", value, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkGreaterThan(String value) {
            addCriterion("remark >", value, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkGreaterThanOrEqualTo(String value) {
            addCriterion("remark >=", value, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkLessThan(String value) {
            addCriterion("remark <", value, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkLessThanOrEqualTo(String value) {
            addCriterion("remark <=", value, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkLike(String value) {
            addCriterion("remark like", value, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkNotLike(String value) {
            addCriterion("remark not like", value, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkIn(List<String> values) {
            addCriterion("remark in", values, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkNotIn(List<String> values) {
            addCriterion("remark not in", values, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkBetween(String value1, String value2) {
            addCriterion("remark between", value1, value2, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkNotBetween(String value1, String value2) {
            addCriterion("remark not between", value1, value2, "remark");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}